home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / T U R B O Language / Turbo C v2.0 / README < prev    next >
Text File  |  1988-08-29  |  22KB  |  558 lines

  1.                         WELCOME TO TURBO C 2.0
  2.                         ----------------------
  3.  
  4. This README file contains important, last minute information
  5. about Turbo C 2.0. The HELPME!.DOC file on the COMMAND LINE/UTILITIES
  6. disk also answers many common Technical Support questions.
  7.  
  8.  
  9. TABLE OF CONTENTS
  10. -----------------
  11.   1. How to Get Help
  12.   2. Installation
  13.   3. Important Notes
  14.   4. Corrections to the Manuals
  15.   5. Additional Notes
  16.   6. Notes for Turbo Prolog Users
  17.   7. Files on the Disks
  18.  
  19.  
  20.  1. HOW TO GET HELP
  21. -------------------
  22.  
  23.   If you have any problems, please read this file, the
  24.   HELPME!.DOC file, and the Turbo C manuals first. If you still
  25.   have a question and need assistance, help is available from
  26.   the following sources:
  27.  
  28.   1. Type GO BOR on the CompuServe bulletin board system for
  29.      instant access to the Borland forums with their libraries of
  30.      technical information and answers to common questions.
  31.  
  32.      If you are not a member of CompuServe, see the enclosed special
  33.      offer, and write for full details on how to receive a free
  34.      IntroPak containing a $15 credit toward your first month's on-
  35.      line charges.
  36.  
  37.   2. Check with your local software dealer or users' group.
  38.  
  39.   3. Write to us at the following address:
  40.  
  41.      Borland International
  42.      Turbo C Technical Support
  43.      1800 Green Hills Road
  44.      P.O. Box 660001
  45.      Scotts Valley, CA  95066-0001
  46.  
  47.      Please remember to include your serial number or we will be
  48.      unable to process your letter.
  49.  
  50.   4. If you have an urgent problem that cannot wait and you have sent
  51.      in the license agreement from the front of your manual, you may
  52.      call the Borland Technical Support Department at (408) 438-5300.
  53.      Please have the following information ready before calling:
  54.  
  55.      a. Product name and serial number on your original distribution
  56.         disk.  Please have your serial number ready or we will be
  57.         unable to process your call.
  58.  
  59.      b. Product version number. The version number for Turbo C is
  60.         displayed when you first load the program and before you
  61.         press any keys.
  62.  
  63.      c. Computer brand, model, and the brands and model numbers of
  64.         any additional hardware.
  65.  
  66.      d. Operating system and version number. (The version number can
  67.         be determined by typing VER at the MSDOS prompt.)
  68.  
  69.      e. Contents of your AUTOEXEC.BAT file.
  70.  
  71.      f. Contents of your CONFIG.SYS file.
  72.  
  73.  
  74.  2. INSTALLATION
  75. ----------------
  76.   The INSTALL/HELP disk contains a program called INSTALL.EXE that
  77.   will assist you with the installation of Turbo C 2.0. There are
  78.   three options for installation:
  79.  
  80.   1. Hard Disk - This option allows you to pick the subdirectories
  81.      where the files will be loaded. It will create a TURBOC.CFG
  82.      file based on those directories.
  83.  
  84.   2. Update from TC 1.5 - This allows for an easy update from version
  85.      1.5.  After the files are copied, all the installed options
  86.      from your current TC.EXE will be transferred to the new one.
  87.      This is especially useful if you have modified the colors or
  88.      editor keys.
  89.  
  90.   3. Floppy Disk - This option will build either a command line or
  91.      Integrated Development Environment version for a two drive
  92.      system. Be sure to have three formatted disks ready before
  93.      you start.
  94.  
  95.   To start the installation, change your current drive to the one
  96.   that has the install program on it and type INSTALL.  You will
  97.   be given instructions in a box at the bottom of the screen for
  98.   each prompt. For example, if you will be installing from drive
  99.   A:, type:
  100.  
  101.     A:
  102.     INSTALL
  103.  
  104.   You should read the rest of this README file to get further
  105.   information about this release before you do the installation.
  106.  
  107.  
  108.  3. IMPORTANT NOTES
  109. -------------------
  110.  
  111.   o The file HELPME!.DOC contains discussions of common questions
  112.     and answers concerning Turbo C 2.0. You should consult it for
  113.     answers to problems that aren't covered in this file or in
  114.     the manuals.
  115.  
  116.   o If you are running INSTALL or TCINST on a laptop or any other
  117.     system that uses an LCD or composite display, you should set
  118.     your system to black and white mode before running INSTALL
  119.     or TCINST. You can do this from DOS with the following command
  120.     line:
  121.  
  122.       mode bw80
  123.  
  124.     or, you can force INSTALL or TCINST to come up in black and
  125.     white mode by using the /b switch:
  126.  
  127.       tcinst /b
  128.  
  129.   o /P PARAMETER FOR TC.EXE. A new command-line switch controls
  130.     palette swapping on EGA video adapters. Using this switch
  131.  
  132.       tc /p hello
  133.  
  134.     is recommended only when the user program modifies the EGA
  135.     palette registers. When /P is specified, the EGA palette will be
  136.     restored each time the screen is swapped. In general, you don't
  137.     need to use this switch unless your program modifies the EGA
  138.     palette registers, or unless your program uses BGI to change
  139.     the palette.
  140.  
  141.   o A program that takes over interrupt 9 cannot be debugged
  142.     with the integrated debugger. Use the standalone Turbo Debugger
  143.     instead.
  144.  
  145.   o exec() WITH NOVELL NETWORK. Versions of the Novell network
  146.     system software earlier than 2.01-2 do not support a DOS
  147.     call used by exec(), spawn(), and system(). If you are using
  148.     the Integrated Development Environment to run a program that
  149.     uses any of these functions and you have early Novell system
  150.     software, run the program from DOS. To do this from the
  151.     Integrated Development Environment you can use Alt-F/O.
  152.  
  153.   o If you used the INSTALL program to upgrade from version 1.5,
  154.     or if you used CINSTXFR to transfer options from an
  155.     installation of version 1.5, check the setting of the
  156.     standard stack frame option in the Integrated Development
  157.     Environment (Alt-O/C/C/S). If you are going to use the
  158.     integrated debugger this option should be turned ON.
  159.  
  160.   o If you are having problems with the call stack or qualified
  161.     names, make sure you have compiled with the standard stack
  162.     frame option turned on.
  163.  
  164.   o The ANSI draft has changed the syntax of labels.  A label now
  165.     must always be followed by a statement.  This means that code
  166.     like this is no longer accepted:
  167.  
  168.       {
  169.         .
  170.         .
  171.         .
  172.         jump_label:
  173.       }
  174.  
  175.     If you have code like this, change it to look like this:
  176.  
  177.       {
  178.         .
  179.         .
  180.         .
  181.         jump_label:
  182.         ;       /* need a statement here! */
  183.       }
  184.  
  185.   o TCC has a switch to specify which assembler to look for. By
  186.     default, it will look for TASM.EXE. If you want to use a
  187.     different assembler, use -E<filename>, as described in the
  188.     Reference Guide.
  189.  
  190.   o When using THELP on an AT&T 6300, be sure to use the /L25
  191.     command-line option, as described in the file THELP.DOC.
  192.  
  193.   o When you use qualified variable names as described on page
  194.     57 of the User's Guide you don't need to use the module
  195.     name to access a variable that is local to a global
  196.     function. The module name is only needed when you access a
  197.     static variable or a variable that is local to a static
  198.     function.
  199.  
  200.   o Because of the limited memory available in the Tiny model,
  201.     it no longer supports graphics functions.
  202.  
  203.   o The Version 1.5 graphics drivers (*.BGI) are not compatible
  204.     with the Version 2.0 graphics library. Use the graphics drivers
  205.     distributed with Version 2.0.
  206.  
  207.   o When used with a Zenith Z-449 card, the BGI autodetection code
  208.     will always select the 640X480 enhanced EGA mode. If you are
  209.     using the Z-449 with a monitor that is not compatible with
  210.     this mode, it will be necessary to override the GraphDriver
  211.     and GraphMode parameters used in the BGI initgraph() call.
  212.  
  213.  
  214.  4. CORRECTIONS TO THE MANUALS
  215. ------------------------------
  216.  
  217.  REFERENCE GUIDE:
  218.  
  219.  Page
  220.  
  221.  159  The prototype for the function getdefaultpallette() is
  222.       incorrect. It should be
  223.  
  224.         struct palettetype * far _Cdecl getdefaultpalette( void );
  225.  
  226.  
  227. USER'S GUIDE:
  228.  
  229.  Page
  230.  
  231.   57  In the section entitled "Qualifying Variable Names," the
  232.       last sentence should read "...need to type only myfunc.myvar."
  233.  
  234.   66 The directions for compiling the WORDCNT program are
  235.      incorrect. There is no WORDCNT.PRJ file; all you need to do
  236.      is load the file WORDCNT.C into the editor. Once you have
  237.      done that, the rest of the instructions are correct.
  238.  
  239.  5. ADDITIONAL NOTES
  240. --------------------
  241.  
  242.   5.1 NOTES FOR VERSION 1.0 & 1.5 USERS
  243.   -------------------------------------
  244.  
  245.   o You must use the Version 2.0 libraries with the 2.0 compilers.
  246.  
  247.   o The Integrated Development Environment no longer displays the
  248.     message "Press any key to return to Turbo C..." when your
  249.     program terminates. Instead, at the end of your program the
  250.     User screen is replaced by the Integrated Development
  251.     Environment. To view the User screen, press Alt-F5 or
  252.     select Alt-R/S. When you are viewing the User screen,
  253.     pressing any key will return you to the Integrated
  254.     Development Environment.
  255.  
  256.   o A new pseudo-variable has been added. _FLAGS now contains the
  257.     value of the flags register so you can test the flags at any
  258.     point in your program.
  259.  
  260.   o The ssignal() and gsignal() functions are no longer
  261.     supported. See the section in this README on how to convert
  262.     programs that use them.
  263.  
  264.   o The cprintf() function now works as documented. It does not
  265.     translate line-feeds into CR/LF combinations.
  266.  
  267.   o Some compatibles had a problem under Version 1.5 because it
  268.     used interrupt 18H. Version 2.0 does not use this interrupt,
  269.     so you shouldn't encounter this problem anymore.
  270.  
  271.   o The program TCINST.COM in Version 1.0 has been changed to an
  272.     .EXE file. You should delete the TCINST.COM program before
  273.     trying to run the new TCINST.EXE. Otherwise, MS-DOS will actually
  274.     run the old one.
  275.  
  276.   o The FILE structure for streams in Version 1.0 (but not 1.5) has
  277.     been changed, so that the function tmpfile() could be implemented.
  278.     You should recompile any modules that use stream I/O.
  279.  
  280.   5.2  THELP
  281.   ----------
  282.  
  283.   THELP is a memory-resident utility program that gives you
  284.   access to the Turbo C context-sensitive help system from any
  285.   program. You don't need to use THELP if you're in the
  286.   Integrated Development Environment, but it is especially useful
  287.   if you use the command line compiler and your own text editor,
  288.   or if you are debugging with the standalone Turbo Debugger. To
  289.   use THELP, load THELP.COM into memory by typing at the DOS
  290.   command line:
  291.  
  292.     thelp
  293.  
  294.   You activate ("pop-up") THELP by typing its hot key -- by
  295.   default numeric keypad <5>. All Turbo C help commands apply
  296.   (F1, Ctrl-F1, Alt-F1). For a complete description of THELP,
  297.   refer to THELP.DOC in the Documentation Subdirectory.
  298.  
  299.   5.3 USING CINSTXFR.EXE
  300.   ----------------------
  301.  
  302.   Your Turbo C 2.0 package contains a program named CINSTXFR.EXE,
  303.   which can be used to transfer the configuration of the
  304.   Integrated Development Environment from your copy of Turbo C
  305.   1.5 (not for 1.0) to your new installation of Turbo C 2.0. This
  306.   program is run automatically by INSTALL.EXE if you select the
  307.   option to "Update Hard Drive Copy of Turbo C 1.5 to Turbo C 2.0."
  308.   If you prefer to do this yourself, you can run CINSTXFR.EXE from
  309.   the DOS command line.
  310.  
  311.   CINSTXFR.EXE takes two arguments: the first is the name of your
  312.   Turbo C 1.5 Integrated Development Environment file (usually
  313.   TC.EXE), and the second is the name of your Turbo C 2.0
  314.   Integrated Development Environment file (also usually TC.EXE).
  315.   Either one of these names can also include a path name.
  316.  
  317.   For example, if your copy of the Turbo C 1.5 Integrated
  318.   Development Environment file is named TC.EXE and is in a
  319.   directory named \TURBOC and your copy of the Turbo C 2.0
  320.   Integrated Development Environment file is also named TC.EXE
  321.   but is located in a directory named \TC2, the command line to
  322.   copy the configuration from 1.5 to 2.0 would look like this:
  323.  
  324.     CINSTXFR \TURBOC\TC.EXE \TC2\TC.EXE
  325.  
  326.   This will transfer all the options that you installed in
  327.   your copy of Turbo C 1.5 to your copy of Turbo C 2.0.
  328.  
  329.   CINSTXFR.EXE does not work with Turbo C 1.0. If you are
  330.   upgrading from Turbo C 1.0, you will have to install the
  331.   options yourself.
  332.  
  333.   5.4 CHANGED SWITCHES FOR OBJXREF
  334.   --------------------------------
  335.  
  336.   OBJXREF is an object module cross reference utility and is
  337.   described on page 528 of the Turbo C Reference Guide.
  338.   The /O option (object files directory) has been changed to the
  339.   /D (directories) option. The switch now allows for multiple
  340.   search directories to be specified. The new syntax is:
  341.  
  342.     OBJXREF /Ddir1[;dir2[;dir3]]
  343.                 or
  344.     OBJXREF /Ddir1 [/Ddir2] [/Ddir3]
  345.  
  346.   OBJXREF will search each of the directories in the specified
  347.   order for all object and library files. If no /D option is
  348.   used, only the current directory will be searched. However,
  349.   if a /D option is used, the current directory will NOT be
  350.   searched unless it is included in the directory list. For
  351.   example, to first search the BORLAND directory for files and
  352.   then search the current directory, you would type
  353.  
  354.     OBJXREF /Dborland;.
  355.  
  356.   If multiple search directories are specified and a file
  357.   matching the file specification is found, OBJXREF will include
  358.   the file as part of the cross-reference. OBJXREF will only
  359.   continue to search the other directories for the same file
  360.   specification if the file specification contains wildcards.
  361.  
  362.   A new option has been added to allow you to specify an output
  363.   file where OBJXREF will send any reports generated. The new
  364.   option is the /O option, and has the following syntax:
  365.  
  366.     OBJXREF myfile.obj /RU /Ofilename.ext
  367.  
  368.   By default, all output is sent to the console.
  369.  
  370.   5.5 CONVERSION INFORMATION FOR ssignal() AND gsignal()
  371.   ------------------------------------------------------
  372.  
  373.   Note: The C library and SIGNAL.H no longer support the ssignal()
  374.   and gsignal() functions.
  375.  
  376.   ssignal() and gsignal() were from the old UNIX System III
  377.   days. The ANSI standard no longer supports them nor does the
  378.   current UNIX System V Interface Definition specification. To
  379.   ease portation problems for people moving older code to Turbo
  380.   C, we supply the source for the functions that came with TC
  381.   1.0 and TC 1.5. Also, the following discussion describes how
  382.   code can be converted to do the same sort of things that
  383.   ssignal() and gsignal() do without actually using them.
  384.  
  385.   NOTE: The constants defined in SIGNAL.H for SIG_IGN and
  386.         SIG_DFL are different from the constants that were in
  387.         TC 1.0 and TC 1.5.
  388.  
  389.   By using a globally declared array of function pointers, you
  390.   can simulate the actions of ssignal() and gsignal() by using
  391.   the following macros. Notice how the global table entry [0] is
  392.   used as a temporary variable in the ssignal macro allowing the
  393.   macro to swap the values and still return the original one.
  394.  
  395.     int (*_sigTable[16]) =
  396.         {
  397.         SIG_IGN, SIG_IGN, SIG_IGN, SIG_IGN,
  398.         SIG_IGN, SIG_IGN, SIG_IGN, SIG_IGN,
  399.         SIG_IGN, SIG_IGN, SIG_IGN, SIG_IGN,
  400.         SIG_IGN, SIG_IGN, SIG_IGN, SIG_IGN,
  401.         };
  402.  
  403.     #define ssignal(num, action) \
  404.     ( \
  405.     (((num) < 1) || ((num) > 15)) ? SIG_DFL : \
  406.       ( \
  407.       (_sigTable[0] = _sigTable[(num)]),  /* List of actions     */ \
  408.          _sigTable[(num)] = (action),     /* The last expression */ \
  409.             _sigTable[0]                  /* is the return value */ \
  410.       ) \
  411.     ) \
  412.  
  413.     #define gsignal(num) \
  414.     ( \
  415.     (((num) < 1) || ((num) > 15)) ? 0 : \
  416.       ( \
  417.       (_sigTable[(num)] == SIG_IGN) ? 1 : \
  418.          ( \
  419.            (_sigTable[(num)] == SIG_DFL) ? 0 : (*_sigTable[(num)])() \
  420.       ) \
  421.     ) \
  422.    ) \
  423.  
  424.  
  425.  6. NOTES FOR TURBO PROLOG USERS
  426. --------------------------------
  427.  
  428.   o If you are linking C code with programs generated by Turbo
  429.     Prolog 2.0, use the file INIT.OBJ provided on the
  430.     EXAMPLES/BGI/MISC disk of the Turbo C 2.0 package instead of
  431.     the file provided with Turbo Prolog 2.0.  There have been some
  432.     changes made in Turbo C 2.0 that require the use of this new file.
  433.  
  434.   o If your C code uses floating point math and you link with the
  435.     emulator library, Prolog will not automatically detect a math
  436.     coprocessor chip. If you want to force the program to use the
  437.     coprocessor, link it with FP87.LIB instead of EMU.LIB.
  438.  
  439.  
  440.  7. FILES ON THE DISKS
  441. ----------------------
  442.  
  443.   INSTALL/HELP
  444.   ------------
  445.   INSTALL  EXE  -  Installation program
  446.   README   COM  -  Reads this README
  447.   TCHELP   TCH  -  Help file for Turbo C
  448.   THELP    COM  -  Pop-up utility to access TCHELP.TCH
  449.   THELP    DOC  -  Documentation for THELP.COM
  450.   README        -  This file
  451.  
  452.   INTEGRATED DEVELOPMENT ENVIRONMENT
  453.   ----------------------------------
  454.   TC       EXE  -  Turbo C Compiler
  455.   TCCONFIG EXE  -  Program to convert configuration files
  456.   MAKE     EXE  -  Program for managing projects
  457.   GREP     COM  -  Turbo GREP program
  458.   TOUCH    COM  -  Program that updates a file's date and time
  459.  
  460.   COMMAND LINE/UTILITIES
  461.   ----------------------
  462.   TCC      EXE  -  Command-line version of Turbo C Compiler
  463.   CPP      EXE  -  Turbo C preprocessor
  464.   TCINST   EXE  -  Installation program for TC.EXE
  465.   TLINK    EXE  -  Borland Turbo Linker
  466.   HELPME!  DOC  -  Common questions and answers
  467.  
  468.   LIBRARIES
  469.   ---------
  470.   C0S      OBJ  -  Small model startup code
  471.   C0T      OBJ  -  Tiny model startup code
  472.   C0L      OBJ  -  Large model startup code
  473.   MATHS    LIB  -  Small model math library
  474.   MATHL    LIB  -  Large model math library
  475.   CS       LIB  -  Small model run-time library
  476.   CL       LIB  -  Large model run-time library
  477.   EMU      LIB  -  8087 emulator library
  478.   GRAPHICS LIB  -  Graphics library
  479.   FP87     LIB  -  8087 library
  480.   TLIB     EXE  -  Borland Turbo Librarian
  481.  
  482.   HEADER FILES/LIBRARIES
  483.   ----------------------
  484.   ???????? H    -  Turbo C header files
  485.   <SYS>         -  Subdirectory with SYS\*.H header files
  486.   C0C      OBJ  -  Compact model startup code
  487.   C0M      OBJ  -  Medium model startup code
  488.   MATHC    LIB  -  Compact model math library
  489.   MATHM    LIB  -  Medium model math library
  490.   CC       LIB  -  Compact model run-time library
  491.   CM       LIB  -  Medium model run-time library
  492.  
  493.   EXAMPLES/BGI/MISC
  494.   -----------------
  495.   UNPACK   COM  -  Program to unpack the .ARC files
  496.   OBJXREF  COM  -  Object file cross-reference utility
  497.   C0H      OBJ  -  Huge model startup code
  498.   MATHH    LIB  -  Huge model math library
  499.   CH       LIB  -  Huge model run-time library
  500.   GETOPT   C    -  Parses options in command line
  501.   HELLO    C    -  Example Turbo C program
  502.   MATHERR  C    -  Source code for handling math library exceptions
  503.   SSIGNAL  C    -  Source code for ssignal and gsignal functions
  504.   CINSTXFR EXE  -  Program to copy TC 1.5 installation to TC 2.0
  505.   INIT     OBJ  -  Initialization code for use when linking with Prolog
  506.  
  507.   BGI      ARC  -  BGI drivers and fonts
  508.     BGIOBJ   EXE - Conversion program for fonts and drivers
  509.     ATT      BGI - Graphics driver for ATT400 graphics card
  510.     CGA      BGI - Graphics driver for CGA
  511.     EGAVGA   BGI - Graphics driver for EGA and VGA
  512.     HERC     BGI - Graphics driver for Hercules
  513.     IBM8514  BGI - Graphics driver for IBM 8514 graphics card
  514.     PC3270   BGI - Graphics driver for PC3270
  515.     GOTH     CHR - Font for gothic character set
  516.     LITT     CHR - Font for small character set
  517.     SANS     CHR - Font for sans serif character set
  518.     TRIP     CHR - Font for triplex character set
  519.     BGIDEMO  C   - Graphics demonstration program
  520.  
  521.   STARTUP  ARC  -  ARC file with startup source code and related files
  522.     RULES    ASI - Assembler include file for interfacing with Turbo C
  523.     C0       ASM - Assembler source for startup code
  524.     SETARGV  ASM - Assembler source code for parsing the command line
  525.     SETENVP  ASM - Assembler source code for preparing the environment
  526.     BUILD-C0 BAT - Batch file for building the startup code modules
  527.     MAIN     C   - Alternative, stripped-down C main file
  528.     EMUVARS  ASI - Assembler variable declarations for emulator
  529.     WILDARGS OBJ - Object code for module to expand wildcard arguments
  530.  
  531.   EXAMPLES ARC  -  Various C examples code
  532.     CPASDEMO PAS - Pascal program that demonstrates Turbo Pascal 4.0 -
  533.                    Turbo C interface
  534.     CPASDEMO C   - C example module for the Turbo Pascal 4.0 - Turbo C
  535.                    interface demonstration
  536.     CTOPAS   TC  - Configuration file for use with TC.EXE that
  537.                    creates Turbo C modules in the correct format
  538.                    for linking with Turbo Pascal 4.0 programs
  539.     CBAR     C   - Example function to be used with PBAR.PRO
  540.     PBAR     PRO - Example Turbo Prolog program demonstrating interface
  541.                    with Turbo C
  542.     WORDCNT  C   - Example program demonstrating source level debugging.
  543.                    NOTE: DO NOT RUN THIS PROGRAM WITHOUT READING THE
  544.                          DISCUSSION IN THE MANUAL.  IT CONTAINS
  545.                          DELIBERATE ERRORS.
  546.     WORDCNT  DAT - Data file for use by WORDCNT.C
  547.  
  548.   MCALC    ARC  -  Mcalc sources and doc
  549.     MCALC    DOC - MicroCalc documentation
  550.     MCALC    C   - MicroCalc main program source code
  551.     MCINPUT  C   - MicroCalc input routines source code
  552.     MCOMMAND C   - MicroCalc commands source code
  553.     MCPARSER C   - MicroCalc input parser source code
  554.     MCUTIL   C   - MicroCalc utilities source code
  555.     MCDISPLY C   - MicroCalc screen display source code
  556.     MCALC    H   - The header file for MicroCalc
  557.     MCALC    PRJ - The MicroCalc project file
  558.